Implementing Distributed (Consensus) Protocols with Replicated Data Types

Project

Replicated data types (RDTs) such as CRDTs are becoming increasingly popular as a simplified way for programming distributed systems. RDTs are local data structures with a familiar interface (such as sets, lists, trees) that can automatically synchronize data between multiple devices in the background. For more background on CRDTs, see https://crdt.tech/

In this project, you will explore how we can leverage RDTs to implement distributed (consensus) protocols such as Raft or 2PC. Consensus protocols are an important component of modern distributed systems that require strong consistency guarantees (e.g. finance, cyberphysical systems).

By building consensus protocols on top of RDTs, we can reuse components provided by existing RDT frameworks and can take message dissemination and certain fault tolerance guarantees for granted. This approach can simplify the development and increase the modularity/maintainability of otherwise rather complex protocols. In addition, protocols implemented with RDTs can seamlessly be integrated into existing applications that already use RDTs without modifying their messaging layer.

Starting Points